package com.exam.service;

import java.util.List;

import com.exam.exception.MajorIsExistException;
import com.exam.pojo.Major;
import com.exam.pojo.MajorAndClasses;
import com.exam.pojo.Paging;

/**
 * @author 蔡小凤
 * 专业服务层
 */
public interface MajorService {

	/**
	 * 获取所有专业
	 * @param void
	 * @return List<Major> 专业列表 
	 */
	List<Major> getAllMajor();
	
	/**
	 * 通过专业名称获取专业对象
	 * @param majorName 专业名称
	 * @return 专业对象
	 */
	Major getMajorByName(String majorName);

	/**
	 *  获取所有专业和班级
	 */
	List<MajorAndClasses> getAllMajorAndClasses();
	
	/**
	 * 添加专业
	 * @param majorName 要添加的专业名称
	 * @return void
	 */
	void addMajor(String majorName) throws MajorIsExistException;

	/**
	 * 更新专业
	 * @param majorName 原来的专业名称
	 * @param newName 新的专业名称
	 * @return void
	 * @throws MajorIsExistException 专业已存在异常
	 */
	void updateMajor(String majorName, String newName) throws MajorIsExistException;

	/**
	 * 删除专业
	 * @param majorName 专业名称
	 * @return void
	 */
	void deleteMajor(String majorName);

	/**
	 * 获取已经被删除的专业(分页)
	 * @param void  
	 * @return 专业列表
	 */
	public Paging getDeletedMajorByPaging(Integer page,Integer pageSize);
	
	/**
	 * 批量恢复专业
	 * @param majorIdList 专业编号列表
	 * @return void 
	 */
	public void recoverMajorByQuery(String majorIdList);

	/**
	 * 恢复专业 
	 * @param majorId 专业编号
	 * @return void
	 */
	public void recoverMajor(Integer majorId);
	
}